package modelo;

import java.util.Date;
import java.util.List;
import java.util.Set;

import dao.HibernateClienteDao;

import redirector.impl.ClienteSRV;
import redirector.impl.CondicionSRV;
import redirector.impl.CotizacionSRV;
import redirector.impl.FacturaSRV;
import redirector.impl.ListadoSRV;
import redirector.impl.OrdenCompraSRV;
import redirector.impl.PedidoSRV;
import redirector.impl.ProveedorSRV;
import redirector.impl.RemitoSRV;
import redirector.impl.RodamientoSRV;
import redirector.impl.SolicitudSRV;
import beans.ClienteBean;
import entity.ClienteEntity;
import entity.CondicionCompraEntity;
import entity.CotizacionEntity;
import entity.FacturaEntity;
import entity.ItemEntity;
import entity.ListadoPecioEntity;
import entity.OrdenCompraEntity;
import entity.OrdenPedidoEntity;
import entity.ProveedorEntity;
import entity.RemitoEntity;
import entity.RodamientoEntity;
import entity.SolicitudCotizacionEntity;

public class AdministradorCasaCentral {
	private ClienteSRV clienteSRV;
	private ListadoSRV listadoSRV;
	private CondicionSRV condicionSRV;
	private ProveedorSRV proveedorSRV;
	private RodamientoSRV rodamientoSRV;
	private SolicitudSRV solicitudSRV;
	private PedidoSRV pedidoSRV;
	private CotizacionSRV cotizacionSRV;
	private RemitoSRV remitoSRV;
	private FacturaSRV facturaSRV;
	private OrdenCompraSRV ordenCompraSRV;
	
	public AdministradorCasaCentral(){
		clienteSRV=new ClienteSRV();
		listadoSRV=new ListadoSRV();
		condicionSRV=new CondicionSRV();
		proveedorSRV = new ProveedorSRV();
		rodamientoSRV=new RodamientoSRV();
		solicitudSRV=new SolicitudSRV();
		pedidoSRV=new PedidoSRV();
		cotizacionSRV=new CotizacionSRV();
		remitoSRV=new RemitoSRV();
		facturaSRV=new FacturaSRV();
		ordenCompraSRV=new OrdenCompraSRV();
	}
	public void ingresarProveedor(ProveedorEntity proveedor)
	{
		proveedorSRV.agregarProveedor(proveedor);
	}
	
	public void ingresarCliente(ClienteEntity cliente){
		clienteSRV.agregarCliente(cliente);
	}
	public Set<String> recuperarPrecios(){
		return listadoSRV.recuperarPrecios();
	}
	public List<ClienteEntity> obtenerClientes() {
		return clienteSRV.obtenerClientes();
	}
	public boolean eliminarCliente(ClienteEntity cliente) {
		return clienteSRV.eliminarCliente(cliente);
	}
	public List<CondicionCompraEntity> obtenerCondicionCompra() {
		return condicionSRV.obtenerCondicionCompra();
	}
	public List<CondicionCompraEntity> obtenerCondicionesCompra(
			ClienteBean clienteActual) {
		return condicionSRV.obtenerCondicionesCompra(clienteActual);
	}
	public ProveedorEntity obtenerProveedor(String cuit) {
		return proveedorSRV.obtenerProveedor(cuit);
	}
	
	public RodamientoEntity obtenerRodamiento(String codigo) {
		return rodamientoSRV.obtenerRodamiento(codigo);
	}
	public void guardarListado(ListadoPecioEntity l) {
		listadoSRV.guardarListado(l);
		
	}
	
	public void vincularListadoProveedor(ProveedorEntity pro) {
		proveedorSRV.vincularListadoProveedor(pro);
		
	}
	public ClienteEntity obtenerCliente(String cuit) {
		return clienteSRV.obtenerCliente(cuit);
	}
	public void guardarSolicitudCotizacion(SolicitudCotizacionEntity soli) {
		solicitudSRV.guardarSolicitudCotizacion(soli);
		
	}
	public List<RodamientoEntity> obtenerRodamientos(String codigo) {
		return rodamientoSRV.obtenerRodamientos(codigo);
	}
	public List<CondicionCompraEntity> obtenerCondicionesCompraCliente(
			ClienteEntity cliente) {
		return condicionSRV.obtenerCondicionesCompra(cliente);
	}
	public void guardarPedido(OrdenPedidoEntity pedido) {
		pedidoSRV.gruardarPedido(pedido);		
	}
	public int obtenerNumeroPedido() {
		return pedidoSRV.obtenerNumeroPedido();
	}
	public Date cotizacionValida(int numero) {
		return cotizacionSRV.obtenerFechaVencimiento(numero);
	}
	public CotizacionEntity obtenerCotizacion(int numero) {
		return cotizacionSRV.obtenerCotizacion(numero);
	}
	public List<ItemEntity> obtenerItemsCotizacion(int numero) {
		return cotizacionSRV.obtenerItemsCotizacion(numero);
	}
	public void guardarCotizacion(CotizacionEntity cot) {
		cotizacionSRV.guardarCotizacion(cot);
		
	}
	public int obtenerNumeroRemito() {
		return remitoSRV.obtenerNumeroRemito();
	}
	public void guardarRemito(RemitoEntity remito) {
		remitoSRV.guardarRemito(remito);
		
	}
	public int obtenerNumeroFactura() {
		return facturaSRV.obtenerNumeroFactura();
	}
	public void guardarFactura(FacturaEntity factura) {
		facturaSRV.guardarFactura(factura);
		
	}
	public CondicionCompraEntity buscarCondicionCompra(String formaPago) {
		return condicionSRV.buscarCondicionCompra(formaPago);
	}
	public List<ListadoPecioEntity> obtenerListado() {
		return listadoSRV.obtenerListado();
	}
	public List<ListadoPecioEntity> obtenerListadosProveedor(String cuit) {
		return listadoSRV.obtenerListadosProveedor(cuit);
	}
	public int obtenerNUmeroOrdenCompra() {
		return ordenCompraSRV.obtenerNumeroOrden();
	}
	public void guardarOrdenCompra(OrdenCompraEntity or) {
		ordenCompraSRV.guardarOrden(or);
		
	}
	public double obtenerGanancia() {
		return listadoSRV.obtenerGanancia();
		
	}
	public OrdenPedidoEntity obtenerOrdenPedido(int numero) {
		return pedidoSRV.obtenerPedido(numero);
	}
}
